﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using GGJ_DKG.Managers;
using GGJ_DKG.Menu;

namespace GGJ_DKG.Objects
{

    class Player : Sprite
    {
        animacao andando;
        animacao parado;
        Vector2 velocity;

        public Player(Texture2D texture)
            : base(texture)
        {
            this.ScaleVector = new Vector2(1, 1);

            Position = new Vector2(200, 300);
            this.velocity = new Vector2(8, 0);

            andando = new animacao();
            andando.quadro_X = 150;
            andando.quadro_Y = 58;
            andando.qtd_quadros = 6;
            andando.quadros_seg = 8;
            andando.Y_inicial = 0;
            andando.ativa = true;


            this.parado = new animacao();
            this.parado.quadro_X = 150;
            this.parado.quadro_Y = 58;
            this.parado.qtd_quadros = 1;
            this.parado.quadros_seg = 1;
            this.parado.Y_inicial = 0;
            this.parado.ativa = true;

            animacao_atual = parado;

        }

        public override void Update(GameTime gameTime)
        {
            movePlayer();
            AnimatedUpdate(gameTime);

        }

        public void movePlayer()
        {
            if (Input.GetKey(Input.key.Rigth))
            {
                direita = 0;

            }
            else if (Input.GetKey(Input.key.Left))
            {

                direita = 1;
            }
            else
            {
                direita = 2;
            }

            if (Input.GetKey(Input.key.A))
            {
                animacao_atual = andando;
                if (direita == 0)
                {
                    if (this.Position.X < Game1.Self.Window.ClientBounds.Width - this.destino.Width / 2)
                    {
                        Position += velocity;
                    }
                }
                else if (direita == 1)
                {
                    if (this.Position.X - this.destino.Width / 2 > 0)
                    {
                        Position -= velocity;
                    }
                }
            }else if (Input.GetKey(Input.key.D))
            {
                animacao_atual = andando;
                if (direita == 0)
                {
                    if (this.Position.X < Game1.Self.Window.ClientBounds.Width - this.destino.Width / 2)
                    {
                        Position += velocity;
                    }
                }
                else if (direita == 1)
                {
                    if (this.Position.X - this.destino.Width / 2 > 0)
                    {
                        Position -= velocity;
                    }
                }
            }
        }

        public void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            base.Draw(gameTime, spriteBatch);

        }
    }
}